/*
 *  Copyright 2013 HCIWriter
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */
package com.hci.writer.client;

import com.google.gwt.event.shared.EventBus;
import com.google.gwt.event.shared.SimpleEventBus;
import com.google.gwt.place.shared.PlaceController;
import com.hci.writer.client.ui.AdminView;
import com.hci.writer.client.ui.AdminViewImpl;
import com.hci.writer.client.ui.GreetingView;
import com.hci.writer.client.ui.GreetingViewImpl;
import com.hci.writer.client.ui.KeyboardHwView;
import com.hci.writer.client.ui.KeyboardHwViewImpl;
import com.hci.writer.client.ui.KeyboardSwView;
import com.hci.writer.client.ui.KeyboardSwViewImpl;
import com.hci.writer.client.ui.NavBarView;
import com.hci.writer.client.ui.NavBarViewImpl;
import com.hci.writer.client.ui.SaveView;
import com.hci.writer.client.ui.SaveViewImpl;
import com.hci.writer.client.ui.WriteView;
import com.hci.writer.client.ui.WriteViewImpl;

public class ClientFactoryImpl implements ClientFactory {
	private final EventBus eventBus = new SimpleEventBus();
    private final PlaceController placeController = new PlaceController(eventBus);
    
    private final AdminView adminView = new AdminViewImpl();
    private final GreetingView greetingView = new GreetingViewImpl();
    private final KeyboardHwView keyboardHwView = new KeyboardHwViewImpl();
    private final KeyboardSwView keyboardSwView = new KeyboardSwViewImpl();
    private final SaveView saveView = new SaveViewImpl();
    private final WriteView writeView = new WriteViewImpl();
    private final NavBarView navBarView = new NavBarViewImpl();

	@Override
	public EventBus getEventBus() {
		return eventBus;
	}

	@Override
	public PlaceController getPlaceController() {
		return placeController;
	}
	
	@Override
	public AdminView getAdminView() {
		return adminView;
	}

	@Override
	public GreetingView getGreetingView() {
		return greetingView;
	}
	
	@Override
	public KeyboardHwView getKeyboardHwView() {
		return keyboardHwView;
	}

	@Override
	public KeyboardSwView getKeyboardSwView() {
		return keyboardSwView;
	}
	
	@Override
	public SaveView getSaveView() {
		return saveView;
	}
	
	@Override
	public WriteView getWriteView() {
		return writeView;
	}

	@Override
	public NavBarView getNavBarView() {
		return navBarView;
	}

}